package rdd.operate;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;

import java.util.Arrays;
import java.util.List;

public class Spark51_Operate_Distinct {
    public static void main(String[] args) {
        final SparkConf conf = new SparkConf();
        conf.setMaster("local");
        conf.setAppName("spark");
        final JavaSparkContext jsc = new JavaSparkContext(conf);
        final List<Integer> nums = Arrays.asList(1,1,1,1,2,2,3,3,4);
        final JavaRDD<Integer> rdd = jsc.parallelize(nums , 3);
        //distinct可以改变分区数量为4
        rdd.distinct(4).collect().forEach(System.out::println);             //因为数据在分区的过程中相同的数据可能在不同的分区内，所以在去重之前
                                                                            //需要进行grooupBy，那么说明distinct具有改变分区数量的能力
        jsc.close();
    }
}
